package com.mini.mybatis.executor.resultset;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

/**
 * 结果集处理器接口
 * 负责将ResultSet转换为Java对象
 */
public interface ResultSetHandler {
    
    /**
     * 处理结果集，返回对象列表
     * @param stmt Statement对象
     * @return 结果对象列表
     * @throws SQLException SQL异常
     */
    <E> List<E> handleResultSets(Statement stmt) throws SQLException;
    
    /**
     * 处理输出参数（用于存储过程）
     * @param cs CallableStatement对象
     * @throws SQLException SQL异常
     */
    void handleOutputParameters(java.sql.CallableStatement cs) throws SQLException;
}